The invention relates to the field of data receivers, and, in particular, to systems and methods for reducing DC offsets in wireless receivers.
The basic challenge in detection of transmitted data comes from distortion caused by the channel. Typically, channel refers to a combination of all non-ideal effects that adversely affect the ability to correctly detect the transmitted data sequence at the receiver. Such effects include, but are not limited to, effects of propagation (e.g. cable, radio channel etc.), non-linearities, or effects of transmit (TX) and receive (RX) filters. Current state-of-the-art detection techniques rely on the knowledge of the channel, which, therefore, must be estimated.
The background of the invention will be described in the wireless communication scenario, although invention can be used in any communication system. As is known in the art, in wireless communications received radio frequency signals are converted to baseband using various receivers. With a homodyne receiver, the received radio frequency signal is mixed with the local oscillator whose frequency is equal to carrier frequency of the received radio frequency signal to translate the carrier frequency to DC and thereby provide “direct conversion” of the modulation on the received radio frequency signal to a modulation at DC. Hence, a homodyne receiver is sometimes referred to as a direct conversion receiver.
While such direct conversion receivers offer the advantage of flexible architecture and educed cost, DC offset associated with such receivers is affecting the receiver performance. The level of the DC offset in direct conversion receiver may range from being significantly larger than the desired signal, i.e., modulation, to be demodulated to being comparable in level with desired signal. Thus, DC offset compensation techniques are typically required. To insure flexibility for different operating conditions, DC offset compensation can be part of the digital baseband portion of the receiver, preferably a part of the digital signal processing (DSP) firmware. One application of direct conversion receivers is in mobile or cellular communication systems. In such systems, the radio channels received signals also suffer from intersymbol interference (ISI) caused by multipath radio propagation and transmitter and/or receiver filtering. We further explain the underlying principle using the specific format of Time Division Multiple Access (TDMA) system as represented by GSM/GPRS/EDGE cellular standard.
The original GSM system, of which GPRS and EDGE are extensions, is a TDMA system, which means that a particular channel is active only during specified time periods. In this case, each channel is divided into eight time slots, with user being active at only every eight slots for voice transmission, or utilizing multiple slots for data transmission per standard specification.
GSM (including GPRS and EDGE) uses the midamble training sequence (a training sequence placed in the middle of the burst of data that occurs in a given slot) in every burst. The system parameters are chosen so that the change in Channel Impulse Response (CIR) is fairly small during one burst so that adaptive CIR estimation is not needed. The midamble training sequence minimizes the distance (in time) between the known portion of the burst (the training sequence) and the ends of the burst, thereby also minimizing CIR change with respect to the CIR estimate obtained from the training sequence.
In EDGE system, the combined channel response usually consists of the linear TX Gaussian shaping filter (CO), actual physical channel, and TX/RX filters (analog and/or digital filters). A set of channel models is used for performance evaluation and covers a wide range of typical physical propagation channels that are likely to be encountered in practice as specified by the standardization bodies (ETSI, 3GPP). These channels are denoted by:                static (no ISI or fading)        TU3 (typical urban, velocity of the mobile station (MS) 3 km/h, moderate multipath, low fading)        TU50 (typical urban, velocity of the MS 50 km/h, moderate multipath and fading)        RA250 (rural area, MS velocity 250 km/h, no multipath, severe fading) HT100 (hilly terrain, MS velocity 100 km/h, severe multipath, significant fading).        
GSM training sequences (shared by GPRS and EDGE) have good autocorrelation properties. GSM/GPRS systems use GMSK modulation format, while EDGE introduces the new 8-PSK modulation format. In EDGE, training sequences for GMSK and 8-PSK modulation are identical, binary, and differ only due to different additional rotation applied to the signal in two modulation schemes. GMSK effectively rotates a signal 90 degrees every symbol, while EDGE 8-PSK uses the rotation of 3π/8 for every symbol. Properties of the training sequences are used to simplify CIR estimation. For example, due to good autocorrelation properties of training sequences, simple cross-correlation can be used for CIR estimation.
In a typical data receiver realization in GSM/GPRS/EDGE system, the whole received burst is stored and the all-digital techniques may be applied to signal processing, including DC offset compensation. Thus, referring to FIG. 1, the data receiver stores the burst of data, r(k), where k=1 . . . N and N is the number of samples in the burst. Each burst includes a mid-amble having a known sequence of bits disposed between data, (i.e., information bits) as shown. Such known sequence of bits is used to aid in equalization and more particularly for enabling channel estimation, which includes timing information, length of the CIR, calculation of CIR taps as well as the alignment of the CIR estimate with respect to the largest magnitude CIR tap, and DC offset estimation. As shown in FIG. 1, an estimate of the DC offset, Â, is calculated. The estimated DC offset, Â, is subtracted from the received burst. The result, r(k)−Â, where k=1 . . . N, is processed to find an estimate of the h. The CIR estimate, ĥ, can be obtained by a variety of methods including cross-correlating [r(k)−Â] with the known mid-amble bit sequence, using Least Square (LS) estimation as well as other advanced techniques.
The simplest method for channel estimation in GSM is cross-correlation. In cross-correlation CIR estimation, the inner 16 symbols of the training sequence are correlated with the received symbol. The received symbol at time k is given by:
      y    n    =                    ∑                  i          =          0                          L          -          1                    ⁢                        h          i                ⁢                  t                      n            -            i                                +          z      n      where yk is the received signal, hk are CIR taps, tk is the known training sequence (or data), while zk is AWGN with variance σ2. The following notation is used to differentiate between the (known) training sequence and (generally unknown) data. Training sequence symbols are denoted by t0 to t25. Data for the left data burst are denoted d0 to d57, while those for the right data burst are denoted d58 to d115. By cross-correlation with the inner 16 training sequence symbols:
                                          h            ^                    k                =                              1            16                    ⁢                                    ∑                              j                =                5                            20                        ⁢                                          y                                  k                  +                  j                                            ⁢                              t                j                                                                            =                              1            16                    ⁢                                    ∑                              j                =                5                            20                        ⁢                                          t                j                            ⁡                              (                                                                            ∑                                              i                        =                        0                                                                    L                        -                        1                                                              ⁢                                                                  h                        i                                            ⁢                                              t                                                  j                          -                          i                          +                          k                                                                                                      +                                      z                                          j                      +                      k                                                                      )                                                                            =                                            1              16                        ⁢                                          ∑                                  i                  =                  0                                                  L                  -                  1                                            ⁢                                                h                  i                                ⁢                                                      ∑                                          j                      =                      5                                        20                                    ⁢                                                            t                      j                                        ⁢                                          t                                              j                        -                        i                        +                        k                                                                                                                          +                                    1              16                        ⁢                                          ∑                                  j                  =                  5                                20                            ⁢                                                t                  j                                ⁢                                                      z                                          j                      +                      k                                                        .                                                                        Due to autocorrelation properties of the training sequences,
                    ∑                  j          =          5                20            ⁢                        t          j                ⁢                  t                      j            -            i            +            k                                =    0    ,unless i=k (provided |k−i|<5),
                                          h            ^                    k                =                              1            16                    ⁢                                    ∑                              j                =                5                            20                        ⁢                                          y                                  k                  +                  j                                            ⁢                              t                j                                                                            =                              h            k                    +                                    1              16                        ⁢                                          ∑                                  j                  =                  5                                20                            ⁢                                                t                  j                                ⁢                                  z                                      j                    +                    k                                                                                                              =                              h            k                    +                      Δ            ⁢                                                  ⁢                                          h                k                            .                                          Δhk denotes CIR tap estimation error due to noise. The main limitation of cross-correlation CIR estimation is that it can only provide accurate estimates of up to 6 CIR taps. If CIR is longer than 6, and HT100 channel profiles span seven symbols when convolved with Gaussian pulse CO (3 symbols span), cross-correlation CIR estimation produces inaccurate estimates for all but six initial taps.
For example, for CIR length of 6, in matrix notation, ĥ is given by:
            h      ^        =                  C        ⁡                  (                      Th            +            z                    )                    ⁢                          ⁢      where            C    =          [                                                  t              5                                                          t              6                                            ⋯                                              t              20                                            0                                ⋯                                ⋯                                0                                                0                                              t              5                                            ⋯                                ⋯                                              t              20                                            0                                ⋯                                0                                                ⋮                                ⋰                                ⋰                                                                                                                                                    ⋰                                ⋰                                ⋮                                                ⋮                                                                                          ⋰                                ⋰                                                                                                                                                    ⋰                                0                                                0                                ⋯                                ⋯                                0                                              t              5                                            ⋯                                ⋯                                              t              20                                          ]            T    =          [                                                  t              5                                                          t              4                                            ⋯                                              t              0                                                                          t              6                                                          t              5                                            ⋯                                              t              1                                                            ⋮                                                                                                                                                    ⋮                                                              t              25                                            ⋯                                ⋯                                              t              20                                          ]      
In general, matrix T is equal to
  T  =      [                                        t                          L              -              1                                                            t                          L              -              2                                                ⋯                                      t            0                                                            t            L                                                t                          L              -              1                                                ⋯                                      t            1                                                ⋮                                                                                                                          ⋮                                                  t            25                                    ⋯                          ⋯                                      t                          25              -              L              +              1                                            ]  and matrices C and T are of dimensions (16+L−1×L) and (26−L+1×L), respectively. This form of matrix T assumes perfect synchronization (i.e., exact knowledge of the length of the channel and position of the training sequence). It should be noted that matrix T will consist only of training sequence symbols as long as 26−L+1>=16+L−1, which implies that L<=6. In the case L>6, matrix T must include some data samples in addition to training sequence symbols. For example,
  T  =      [                                        t            5                                                t            4                                    ⋯                                      t            0                                                d            57                                                            t            6                                                t            5                                    ⋯                                      t            1                                                t            0                                                ⋮                          ⋮                                                                          ⋮                          ⋮                                                  t            25                                                t            24                                    ⋯                                      t            20                                                t            19                                                            d            58                                                t            25                                    ⋯                                      t            21                                                t            20                                ]  Thus, estimates for CIR taps 0 and 6, in this case, become:
                    h        ^            0        =                  h        0            +                        1          16                ⁢                  (                                                    t                5                            ⁢                              d                57                                      +                                          ∑                                  j                  =                  6                                20                            ⁢                                                t                  j                                ⁢                                  t                                      j                    -                    6                                                                                )                ⁢                  h          6                    +              f        ⁡                  (          z          )                                        h        ^            6        =                  h        6            +                        1          16                ⁢                  (                                                    t                20                            ⁢                              d                58                                      +                                          ∑                                  j                  =                  6                                19                            ⁢                                                t                  j                                ⁢                                  t                                      j                    +                    6                                                                                )                ⁢                  h          0                    +                        f          ⁡                      (            z            )                          .            It can be seen that both the first and last CIR tap estimates will be distorted. This is much more significant in the case of the last tap, h6, as the first tap can, in some cases, be very large.
In matrix notation, cross-correlation CIR estimates are given by
      h    ^    =                    1        16            ⁢      Cr        =                            1          16                ⁢                  C          ⁡                      (                          Th              +              z                        )                              =                        h          +                                    1              16                        ⁢            Cz                          =                  h          +                      Δ            ⁢                                                  ⁢            h                              
A CIR error covariance matrix is given by
      E    ⁡          [              Δ        ⁢                                  ⁢        h        ⁢                                  ⁢        Δ        ⁢                                  ⁢                  h          H                    ]        =                    1                  16          2                    ⁢              E        ⁡                  [                                    Czz              H                        ⁢                          C              H                                ]                      =                            σ          2                          16          2                    ⁢              CC        H            where (for L<=5, and perfect synchronization) CCH is approximately equal to 16 I (I is identity matrix). If L>=7, or in case of imperfect synchronization, the estimation error covariance matrix becomes a function of CIR and data in addition to the error caused by AWGN. In general, CIR estimation error covariance is roughly equal to a σ2/16 for all taps with cross-correlation CIR estimation.
In order to start CIR estimation, the position of the training sequence needs to be identified. The first synchronization step takes place on a once-per-symbol sampled received signal. Synchronization is performed by correlating the entire training sequence with the received signal. The result is given by
                                                                        a                k                            ⁢                            =                                                ∑                                      j                    =                    0                                    25                                ⁢                                                                  ⁢                                                      y                                          k                      +                      j                                                        ⁢                                      t                    j                                                                                                                                        ⁢                              =                                                      ∑                                          j                      =                      0                                        25                                    ⁢                                                                          ⁢                                                            t                      j                                        ⁡                                          (                                                                                                    ∑                                                          i                              =                              0                                                                                      L                              -                              1                                                                                ⁢                                                                                                          ⁢                                                                                    h                              i                                                        ⁢                                                          t                                                              j                                -                                i                                +                                k                                                                                                                                    +                                                  z                                                      j                            +                            k                                                                                              )                                                                                                                                                            ⁢                              =                                                                            ∑                                              i                        =                        0                                                                    L                        -                        1                                                              ⁢                                                                                  ⁢                                                                  h                        i                                            ⁢                                                                        ∑                                                      j                            =                            0                                                    25                                                ⁢                                                                                                  ⁢                                                                              t                            j                                                    ⁢                                                      t                                                          j                              -                              i                              +                              k                                                                                                                                                            +                                                            ∑                                              j                        =                        0                                            25                                        ⁢                                                                                  ⁢                                                                  t                        j                                            ⁢                                              z                                                  j                          +                          k                                                                                                                                                                                                                                    a                k                            =                                                                    ∑                                          i                      =                      0                                                              L                      -                      1                                                        ⁢                                                                          ⁢                                                            h                      i                                        ⁢                                                                  ∑                                                  j                          =                          0                                                25                                            ⁢                                                                                          ⁢                                                                        t                          j                                                ⁢                                                  t                                                      j                            -                            i                            +                            k                                                                                                                                              +                                                      ∑                                          j                      =                      0                                        25                                    ⁢                                                                          ⁢                                                            t                      j                                        ⁢                                          z                                              j                        +                        k                                                                                                                                                                                                                ⁢                              =                                                                            h                      k                                        ⁢                                          T                      ⁡                                              (                        0                        )                                                                              +                                                            ∑                                                                        i                          ≠                          k                                                                          i                          =                          0                                                                                            L                        -                        1                                                              ⁢                                                                                  ⁢                                                                  h                        i                                            ⁢                                              T                        ⁡                                                  (                                                      k                            -                            i                                                    )                                                                                                      +                                      f                    ⁡                                          (                                              t                        ,                        z                                            )                                                                                                              where T(0) is the auto-correlation of the training sequence at delay of 0 (equal to 26) while T(k−i) are auto-correlations of the training sequence at different delays combined with cross-correlation with data symbols. In this case, T(k−i) are typically significantly smaller than T(0) so that ak is roughly equal to hkT(0). Consequently, the index of the largest magnitude ak corresponds to the position of the training sequence start, shifted by the position of the largest magnitude CIR tap with respect to the first CIR tap (tap 0).
After finding the approximate position of the largest magnitude CIR tap, the CIR span and the actual start of the training sequence (and therefore the whole burst) need to be established. The received burst can be envisioned as a superimposition of several copies of the original data—echoes—due to different CIR taps. As the largest magnitude CIR tap is not necessarily the first tap in the CIR, the echo corresponding to this tap does not necessarily correspond to the real start of the training sequence. Thus, a solution is needed to identify how many taps are present in the CIR and where the CIR starts (i.e. how many taps exist in front of the largest magnitude tap).
Usually, the length of the CIR is determined in advance and is supposed to be sufficient to cover the span in the worst-case scenario. In EDGE that is the HT100 channel, with about 7 taps. The extent of the CIR is determined as follows: after finding the location of the largest magnitude taps, rough estimates are obtained of another ten taps on both sides of the largest magnitude tap using cross-correlation CIR estimation. These ten taps are selected based on the properties of the training sequence. Since the largest magnitude tap is a part of the CIR, the remaining taps that can be correctly estimated using cross-correlation must be on either side or both sides of the largest magnitude tap. Thus, these extra ten taps are estimated, with the knowledge that at least five of them are correct. These are usually the largest magnitude taps out of the estimated eleven. Thus, the next step is usually to apply the so-called maximum energy algorithm. The magnitudes of all tentatively estimated taps are computed. Then, the CIR energy is computed given that CIR should have L taps by adding the magnitudes of L taps for different valid delays. The maximum energy delay is taken as the correct CIR span. If the index of the largest magnitude tap is given by max_idx, and the shift of the maximum energy CIR span with respect to max_idx is tap_shift, then the start of the burst is given by max_idx-tap_shift-61.
In Least Squares CIR estimation, a matrix representation model for the channel is given by r=Th+z, where
                    T        =                  [                                                                      t                                      L                    -                    1                                                                                                t                                      L                    -                    2                                                                              ⋯                                                              t                  0                                                                                                      t                  L                                                                              t                                      L                    -                    1                                                                              ⋯                                                              t                  1                                                                                    ⋮                                                                                                                                                                                                        ⋮                                                                                      t                  25                                                            ⋯                                            ⋯                                                              t                                      25                    -                    L                    +                    1                                                                                ]                                                  h          =                                    [                                                h                  0                                ⁢                                                                  ⁢                                  h                  1                                ⁢                                                                  ⁢                …                ⁢                                                                  ⁢                                  h                                      L                    -                    1                                                              ]                        T                          ,                  r          =                                    [                                                r                                      L                    -                    1                                                  ⁢                                                                  ⁢                                  r                  L                                ⁢                                                                  ⁢                                  r                                      L                    +                    1                                                  ⁢                                                                  ⁢                …                ⁢                                                                  ⁢                                  r                  25                                            ]                        T                          ,                                          and          ⁢                                          ⁢          z                =                                            [                                                z                                      L                    -                    1                                                  ⁢                                                                  ⁢                                  z                  L                                ⁢                                                                  ⁢                                  z                                      L                    +                    1                                                  ⁢                                                                  ⁢                …                ⁢                                                                  ⁢                                  z                  25                                            ]                        T                    .                    
Then, the LS CIR estimate is given byĥ=(THT)−1THr=(THT)−TH(Th+z)=h+(THT)−1THz=h+Δh 
Unlike the cross-correlation CIR estimation, the LS CIR estimation is a coupled problem. In a LS CIR estimate, every estimated CIR tap depends on other estimated CIR taps. Thus, the value of the estimated taps in the LS CIR estimate depends on the time alignment of the estimator with respect to the largest magnitude tap, inasmuch as the contribution of every omitted significant CIR tap is distributed between the remaining taps in the LS CIR estimation. Consequently, while the initial synchronization step remains unchanged with respect to cross-correlation CIR estimation, the optimal CIR alignment step is significantly different.
To find the optimal CIR span and alignment with respect to the largest magnitude CIR tap, all CIR estimates need to be identified with particular L that include the largest magnitude CIR tap and then pick the one that is the best fit in some sense (for example, model fitting error).
Unfortunately, this procedure is very complex—about three to six times more complex than cross-correlation CIR estimation. Furthermore, the simplest way to reduce the complexity of the CIR alignment step, by obtaining a rough LS CIR estimate consisting of 11 CIR taps, as with cross-correlation CIR estimation, results in a CIR estimation error that is far inferior to that achievable with cross-correlation CIR estimation.
Consequently, if the optimal CIR alignment procedure is too complex, the cross-correlation CIR estimate can be used as a rough CIR estimate and thus obtain the parameters required to find a better CIR estimate, CIR length L, and the alignment of the CIR estimate with respect to the largest magnitude CIR tap. The procedure for obtaining these parameters is the same as for cross-correlation CIR estimation (described above).
For LS CIR estimation, an estimation error is given by Δh=(THT)−1THz, while estimation error covariance matrix is given by:E[ΔhΔhH]=E[(THT)−1THzzHT(THT)−1]=σ2(THT)−1 Error covariance for individual taps is given by diagonal elements of the estimation error covariance matrix and is roughly equal to σ2/(26−L+1) for LS CIR estimation. As off-diagonal elements of (THT)−1 are in general not equal to zero (although small), LS CIR estimation errors are correlated, but only slightly.
Parameters obtained by channel estimation, including DC offset and CIR estimates, are further sent to data receiver and are used to enable the demodulation process (e.g. prefilter calculation, equalization algorithm selection, calculation of the path metric of trellis based equalizers, etc.)